package dryven.persistence.query;

import java.util.Iterator;

import javax.persistence.EntityManager;

public class MultiQuery implements Iterable<ResultRow>, QueryFilterGroup {
	
	public MultiQuery(EntityManager em) {}
	
	public <T> T select(Class<T> type, boolean distinct) {
		return null;
	}
	/* adds join and returns filter proxy, but also puts this type in the recordset */
	public <T> T select(Class<T> type) {
		return null;
	}
	/* adds join and returns filter proxy. This type won't be available in the record set though */
	public <T> T join(Class<T> type) {
		return null;
	}

	@Override
	public Iterator<ResultRow> iterator() {
		return null;
	}

	@Override
	public QueryFilterGroup and() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup close() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup equal(Object method, Object value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup greaterThan(Object method, Object value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup greaterThanOrEqual(Object method, Object value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup inList(Object method, Iterable<?> list) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup like(String method, String value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup littlerThan(Object method, Object value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup littlerThanOrEqual(Object method, Object value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup notEqual(Object method, Object value) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup openAnd() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup openOr() {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public QueryFilterGroup or() {
		// TODO Auto-generated method stub
		return null;
	}
	
	public <T> Iterable<T> resultForType(T proxy) {
		return null;
	}
	
	public <T> T single(T proxy) {
		return null;
	}

	
}
